<?php
/*
 * Datei: create_person.php
 * Funktion: Erstellt einen neuen Personen-Datenstz in der Datenbank.
 *           Beinhaltet zudem auch das HTML-Formular zur Eingabe der
 *           Personaldaten
 * Autor:    Alexander Palmer
 * Version:  01.03.2013
 */

require_once ('../../lib/database.inc.php');
require_once ('../../lib/html.inc.php');

// Wurde der Button mit dem Name-Attribut angeklickt? Wenn ja, dann wurde
// ein POST-Request ausgelöst und der Button an das POST-Array übergeben.    
if (isset($_POST['submit'])) {
  // Einlesen des Eingabefeldes mit dem name-Attribut 'description'
  $fn = $_POST['firstname'];
  $ln = $_POST['lastname'];
  $sx = $_POST['sex'];
  $dp = $_POST['department'];

  // Wenn die Variable leer oder zu kurz ist, wird ein allgemeines
  // sowie ein spezielles Error-Flag gesetzt.
  // Das allgemeine Error-Flag wird später dazu benutzt, ob das Einfügen
  // des Datensatzes in die Datenbank überhaupt erfolgen soll, bzw.
  // ob eine allgemeine Fehlermeldung ausgegeben wird.
  // Das spezifische Error-Flag wird für die genaue Fehlermeldung
  // Ausgabe benutzt, um genau das Eingabefeld definieren zu können,
  // welches falsch oder nicht eingegeben wurde.
  if (empty($fn) || strlen($fn) < 1) {
    $error = true;
    $errorFN = true;
  }

  if (empty($ln) || strlen($ln) < 1) {
    $error = true;
    $errorLN = true;
  }

  if (empty($sx)) {
    $error = true;
    $errorSX = true;
  }

  if (empty($dp) || trim($dp) == 'null') {
    $error = true;
    $errorDP = true;
  }

  // Jetzt kommt das allgemeine Error-Flag zu Einsatz. Wenn dieses nicht
  // gesetzt wurde (beachte das ! vor der isset-Funktion), dann darf in die
  // Datenbank geschrieben werden, ansonsten werden die folgenden Zeilen
  // einfach übersprungen.
  if (!isset($error)) {
    $link = connectDB();
    $sql = "INSERT INTO person (firstname, lastname, sex, id_dep_fk)
               VALUES('$fn', '$ln', '$sx', '$dp')";
    $status = mysqli_query($link, $sql);
    // Mit dieser Anweisung springt das Skript zurück auf read.php
    // Somit verhindernw wird, dass das HTML-Formular unten erneut
    // dargestellt wird.
    header('Location: show_person.php');
  }
}
?>
<?php generateHeader('Person erstellen', '../css/default.css'); ?>
<h1>Neue Person anlegen</h1>
<?php
if (isset($error)) {
  echo '<p class="error">Nicht alle Felder sind korrekt ausgef&uuml;llt<p>';
}
?>
<div id="content">
  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <table border="1" width="400">
      <tr <?php if (isset($errorFN)) echo 'class="error"'; ?>>
        <td>Vorname:</td>
        <td>
          <input type="text" value="<?php if (isset($fn)) echo $fn; ?>" 
                 name="firstname" />
        </td>
      </tr>
      <tr <?php if (isset($errorLN)) echo 'class="error"'; ?>>
        <td>Nachname:</td>
        <td>
          <input type="text" value="<?php echo $ln; ?>" 
                 name="lastname" />
        </td>
      </tr>
      <tr <?php if (isset($errorSX)) echo 'class="error"'; ?>>
        <td>Geschlecht:</td>
        <td>
          <?php
          echo 'm&auml;nnlich';

          if (trim($sx) == 'm')
            $sel = 'checked';
          else
            $sel = '';
          echo '<input type="radio" value="m" ' . $sel . ' name="sex" />';

          echo 'weiblich';

          if (trim($sx) == 'f')
            $sel = 'checked';
          else
            $sel = '';
          echo '<input type="radio" value="f" ' . $sel . ' name="sex" />';
          ?>
        </td>
      </tr>
      <tr <?php if (isset($errorDP)) echo 'class="error"'; ?>>
        <td>Abteilung:</td>
        <td>
          <select name="department">
            <option value="null">Bitte w&auml;hlen Sie</option>
            <?php
            $link = connectDB();

            $sql = "SELECT * FROM department";

            $result = mysqli_query($link, $sql);

            while ($row = mysqli_fetch_array($result)) {
              echo '<option value="' . $row['id'] . '" ';
              if ($row['id'] == $dp)
                echo ' selected ';
              echo '>' .
              $row['description'] .
              '</option>';
            }
            ?>
          </select>
        </td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>
          <input type="submit" value="speichern" name="submit" />
        </td>
      </tr>
    </table>
  </form>
</div>
<div id="navigation">
  <p><a href="show_person.php">Zur&uuml;ck zu alle Personen anzeigen.</a></p>
</div>
<?php generateFooter(); ?>